<?php
// 获取框架的错误日志目录
function v7_get_error_path()
{
    return V7_LOGS . '/error';
}

// 获取框架的会话存储目录
function v7_get_session_path()
{
    return V7_TMP . '/sessions';
}

// 获取框架的会话存储目录
function v7_data_get(string $key, array $data = [])
{
    return $data[$key] ?? null;
}

/**
 * 通过当前请求的URL来判断是否本地开发环境
 * 如果域名是localhost或者127.0.0.1则返回true
 * 如果域名是uxt.test.com则返回false
 * @return bool
 */
function v7_is_local()
{
    // 新建逻辑：判断是否命令行，如果是命令行环境，则判断是否window 还是 linux
    if (php_sapi_name() == 'cli') {
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
            return true;
        } else {
            return false;
        }
    }
    return preg_match('/^(localhost|127.0.0.1)/', $_SERVER['HTTP_HOST']);
}

/**
 * 加载组件
 */
function load_components($component)
{
    if (is_string($component)) {
        $path = V7_COMPONENTS . DIRECTORY_SEPARATOR . $component . DIRECTORY_SEPARATOR . 'autoload.php';
        if (file_exists($path)) {
            require_once $path;
        }
    } else if (is_array($component)) {
        foreach ($component as $item) {
            load_components($item);
        }
    }
}


/**
 * 引入文件
 * @param string $path
 * @return mixed
 */
function v7_import($path)
{
    static $import_list = [];
    if (!isset($import_list[$path])) {
        $import_list[$path] = require_once $path;
    }
    return $import_list[$path];
}
